Linux 的圖形界面 以前是 X-window,現在是 Xorg,過去要用遠端的圖形界面,另一端也必須是 X 的環境才能連,但現在有 VNC 這更方便的跨平台的方式提供遠端操作。
過去的不便
以往從 windows 要連遠端的 Linux 圖形界面,windows 必須這一端也是要用 X 的視窗環境,通常是會裝 Xming,使用方式可參考: Xming 簡易使用說明。
優點是可指定某一個程式,就跳到 windows 端單單地執行;缺點是 X 只能對 X,卻不能去用 Windows 裡的東西。幸好有 VNC,各平台都有 server 端或 client 端,不管兩方是什麼作業系統就可連線操作。
安裝及設定VNC
不同Linux 版本先用搜尋 vnc 字樣,安裝所提供的 vnc 服務。
第一次先執行 vncpasswd 設定登入vnc時的密碼,這時會產生 ~/.vnc 及裡面相關檔案,其中要編輯這個 xstartup 檔,是一啟動 vnc 後,要執行哪些 X 環境的程式在 VNC 裡:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
export XMODIFIERS=@im=SCIM
export GTK_IM_MODULE="scim"
XIM="SCIM”"
XIM_PROGRAM=scim
XIM_ARGS="-d"
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
這裡是設定啟動 scim 為輸入法。
使用 VNC
在 windows 端用以下指令連上 Linux,同時透過ssh 的通道來傳VNC的資料。
putty -L 5901:localhost:5901 singernew@1.2.3.4
在Linux上鍵入:
$ vncserver :1
New 'mylinux:1 (singernew)' desktop is mylinux:1
Starting applications specified in /home/singernew/.vnc/xstartup
Log file is /home/singernew/.vnc/mylinux:1.log
就現 X 已啟動 :1 的連線裡,
這時候在windows裡執行 VNC 的 client,輸入 localhost:1
再輸入密碼
就會出現遠端 X 的:1 桌面
為何要建 ssh 通道方式使用VNC?
vncserver :1 這指令是把 VNC 開在 port 5901,如果在防火牆的iptables把5901打開,那windows端設連線的主機用 1.2.3.4:1 就可連上。但這個連線是未加密的。
所以server, client 兩邊的中間只有透過SSH來傳是比較安全,所以在 ssh 連線上會多加一些的參數設定。這樣也不需要防火牆做開port的動作。
VNC 實在是跨平台使用遠端圖形界面的方便工具。